package com.cskaoyan.mapper;

import com.cskaoyan.bean.yangzihui.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author yangzihui
 * @Description
 * @Create 2022-06-26 15:26
 * @Version
 */
public interface CouponMapper {

    List<Coupon> select(@Param("sort") String sort, @Param("order") String order, @Param("name") String name, @Param("type") Integer type, @Param("status") Integer status);

    void add(@Param("newCoupon") NewCoupon newCoupon, @Param("date") Date date, @Param("str") String str);

    void addBONewCoupon(@Param("boNewCoupon") BONewCoupon boNewCoupon, @Param("date") Date date, @Param("str") String str);

    void delete(Coupon coupon);

    List<CouponUser> query(@Param("sort") String sort, @Param("order") String order, @Param("couponId") Integer couponId, @Param("status") Integer status, @Param("userId") Integer userId);

    void modify1(@Param("finalCoupon") FinalCoupon finalCoupon, @Param("date") Date date);

    Integer selectType(FinalCoupon finalCoupon);

    Integer selectTimeType(FinalCoupon finalCoupon);

    void modify2(@Param("finalCoupon") FinalCoupon finalCoupon, @Param("date") Date date, @Param("str") String str);

    void modify3(FinalCoupon finalCoupon);

    void modify4(FinalCoupon finalCoupon);


    Coupon read(Integer id);

    Integer selectTimeType1(Integer id);

    FinalCoupon newRead(Integer id);

    List<CouponList> list();

    List<CouponMyList> myList(@Param("id") Integer id, @Param("status") Integer status);

    Integer queryTotal(Integer couponId);

    Integer hasCoupon(@Param("id") Integer id, @Param("couponId") Integer couponId);

    void insertCoupon(@Param("id") Integer id, @Param("couponId") Integer couponId, @Param("finalCouponVo") FinalCouponVo finalCouponVo, @Param("date") Date date, @Param("time") Date time);

    FinalCouponVo queryCoupon(Integer couponId);

    void updateCoupon(@Param("couponId") Integer couponId, @Param("counts") Integer counts);

    Integer selectLimit(Integer couponId);

    Integer selectCount(@Param("id") Integer id, @Param("couponId") Integer couponId);

    Integer selectCode(String code);

    FinalCouponVo queryCouponByCode(String code);

    void insertCouponByCode(@Param("id") Integer id, @Param("finalCouponVo") FinalCouponVo finalCouponVo);

    void updateCode(@Param("couponId") Integer couponId, @Param("str") String str);

    void updateCodeNull(Integer couponId);

    Integer count(Integer id);

    void updateCouponUser(Coupon coupon);

    void insertCouponByStartTime(@Param("id") Integer id, @Param("couponId") Integer couponId, @Param("finalCouponVo") FinalCouponVo finalCouponVo, @Param("date") Date date);

    List<Date> getEndTime(Integer id);

    void setStatus(@Param("id") Integer id, @Param("date2") Date date2);

    List<Money> getTotalPrice(Integer id);

    List<CouponMyList> getAllCoupon(Integer id);

    List<StatusOfUser> getStatus(Integer id);

    Integer selectGoodsId(Integer goodsId);

    Integer selectStatus(String code);

}
